1. Field of the Invention
The present invention relates to the field of computer software systems. More particularly, the present invention relates to a system and a method of generation of performance metrics for application computer systems.
2. Description of the Related Art
Large-scale application system performance is a major issue in a computing system production environment. Unexpected performance problems may arise because some resources of a computing system may be quickly exhausted, while other resources remain abundant. Most system performance problems are of this kind of problem because software applications, or modules, that are simultaneously executed on a computing system compete for the limited resources of the system and, consequently, may adversely affect the overall performance of the system.
Performance considerations for large-scale computer systems include, for example, performance tuning, job scheduling, and capacity planning. Traditionally, the key tools used for resolving performance problems have been performance metrics and include a spectra of performance metrics, such as hardware metrics, operating system related metrics, connectivity metrics, application performance metrics, etc.
Conventional application performance metrics belong to two major categories: global metrics and vector metrics. Global metrics, sometimes referred to as total or integral metrics, accumulate information relating to consumption of a specific resource for an entire application system over a specified period of time. The resource consumption information is accumulated without differentiation between different applications and processes that execute transactions in consuming the resource. Global metrics based on system CPU usage, I/O utilization, or records per hour, for example, do not provide quantitative insight to system performance because system loads vary, and because contributions by different types of application processes, for example, batch transactions and queries, are not properly taken into account. That is, summing a total number of records (or a total of another unit of work) produced on a computing system by different application processes over certain period of time is the equivalent of adding apples and oranges because the combination of system components and their respective activities constantly change. Even qualitatively, conventional global metrics may be misleading.
The second category of metrics, vector metrics, usually consists of few selected total metrics. Even if a vector metric consists of parameters related to every specific application process of the system, a vector metric is not particularly usable and does not provide significant insight to performance of a computing system. For example, it is difficult to decide whether a computing system having a vector defined as (CPU1=55, IO1=118, RECORDS1=83, CPU2=18, IO2=339, RECORDS2=117) performs better that another computing system having a vector defined as (CPU1=25, IO1=148, RECORDS1=63, CPU2=118, IO2=139, RECORDS2=137).
What is needed is an objective performance metric that can be used for evaluating application system performance and that has a reasonable physical justification. What is also needed is a performance metric that is sensitive to a contention between different processes for all types of resources and data.